#ifndef PERMISSION_MANAGER_H
#define PERMISSION_MANAGER_H

#include "session_manager.h"

class DataController;

class PermissionManager final
{
public:
    PermissionManager(std::shared_ptr<DataController> dataController);
    ~PermissionManager();

    Uuids::Uuid login(
        const std::string& userLogin,
        const std::string& password
    );

    bool logout(
        const Uuids::Uuid& sessionUuid
    );

    Elements::UserPtr userBySession(const Uuids::Uuid& uuid);

private:
    SessionManager m_sessionManager;
    std::shared_ptr<DataController> m_dataController;

};

#endif // PERMISSION_MANAGER_H
